/* -*- Mode: c; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
/*
  RefObject (http://code.google.com/p/refobject/)
  Copyright (C) 2010-2011 MIURA Shirow (sharow)
*/

#ifndef INCLUDED_REDSTRING_H
#define INCLUDED_REDSTRING_H


#include <RefObject/RefObject.h>

RefTypeObject **RefString_GetTypeObject(void);
int RefString_IsValid(RefObject *aRefObject);
RefObject *RefString_CreateShallow(unsigned char *aString, int aLength);
RefObject *RefString_CreateDuplicate(unsigned char *aString, int aLength);
RefObject *RefString_CreateShallowWithAllocator(unsigned char *aString, int aLength, RefObject *aRefAllocator);
RefObject *RefString_CreateDuplicateWithAllocator(unsigned char *aString, int aLength, RefObject *aRefAllocator);
unsigned char *RefString_AsString(RefObject *aRefObject);
int RefString_GetLength(RefObject *aRefObject);
int RefString_CompareRefString(RefObject *aRefString0, RefObject *aRefString1);
int RefString_CompareCStringWithLength(RefObject *aRefString, unsigned char *aCString, int aLength);
int RefString_CompareCString(RefObject *aRefString, unsigned char *aCString, int aLength);

#endif
